package Pet.Management.service;

import Pet.Management.domain.entity.Comment;
import Pet.Management.domain.entity.Message;
import Pet.Management.domain.entity.Post;
import Pet.Management.domain.entity.User;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

public interface MessageService {
    
    /**
     * 发送私信
     */
    Message sendPrivateMessage(Long senderId, Long receiverId, String title, String content);

    /**
     * 发送系统通知
     */
    Message sendSystemNotification(Long receiverId, String title, String content);

    /**
     * 发送点赞通知
     */
    Message sendLikeNotification(User liker, Long postId);

    /**
     * 发送收藏通知
     */
    Message sendFavoriteNotification(User favorer, Long postId);

    /**
     * 发送评论通知
     */
    Message sendCommentNotification(Comment comment);

    /**
     * 发送回复通知
     */
    Message sendReplyNotification(Comment reply, Comment parentComment);

    /**
     * 获取用户的消息列表
     */
    Page<Message> getUserMessages(Long userId, Pageable pageable);

    /**
     * 获取用户未读消息数量
     */
    long getUnreadMessageCount(Long userId);

    /**
     * 标记消息为已读
     */
    boolean markMessageAsRead(Long messageId, Long userId);

    /**
     * 删除消息
     */
    boolean deleteMessage(Long messageId, Long userId);
} 